Skip to content

Feature/fix values#23631

Closed
Picazsoo wants to merge 13 commits intoOpenAPITools:masterfrom
Picazsoo:feature/fix-values
Closed

Feature/fix values#23631
Picazsoo wants to merge 13 commits intoOpenAPITools:masterfrom
Picazsoo:feature/fix-values

Conversation

@Picazsoo
Copy link
Copy Markdown
Contributor

@Picazsoo Picazsoo commented Apr 27, 2026

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR solves a reported issue, reference it using GitHub's linking syntax (e.g., having "fixes #123" present in the PR description)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

Summary by cubic

Fixes Kotlin string escaping across generators and hardens Markdown rendering to prevent broken docs. Prevents interpolation and compile errors for $, backslashes, quotes, newlines, triple‑quoted strings, and comment‑close sequences in paths, annotations, docs, and defaults.

  • Bug Fixes
    • Expose raw fields for templates: unescapedSummary, unescapedNotes, unescapedMessage, unescapedDescription, unescapedDefaultValue (ops, params, properties, responses).
    • Add Mustache lambdas under lambda.*: escapeInNormalString, escapeDollarInMultiline, escapeDollar, removeLineBreak; add lambda.escapeMarkdown in DefaultCodegen; remove old per‑generator lambdas in KotlinSpringServerCodegen.
    • Apply escaping to annotation strings and paths across kotlin-spring, kotlin-client, kotlin-server, kotlin-misk, kotlin-wiremock (Retrofit2/@get and @Query/@Path/@Header, OkHttp, Volley, Ktor2, Vertx, JAX-RS, Javalin 5/6, Multiplatform, Spring RestClient/WebClient). @JsonProperty names and PATH const vals now escape $.
    • Render string defaults from unescapedDefaultValue with escapeInNormalString in params and model properties; keep enums and numbers unchanged.
    • Use unescapedSummary/unescapedNotes and unescapedDescription in docs and OpenAPI annotations; escape multiline descriptions with escapeDollarInMultiline; escape Markdown in API/class docs with lambda.escapeMarkdown to avoid premature code block termination.
    • Add worst‑case spec and tests (issue 20502), new Echo API samples covering $ in path/query and defaults; tests assert @JsonProperty and PATH const string escaping; update kotlin-misk configs to use petstore-kotlin-misk.yaml; regenerate samples and docs.

Written for commit 779bcab. Summary will update on new commits. Review in cubic

Picazsoo added 13 commits April 27, 2026 10:03
   - Add unescapedSummary, unescapedMessage, unescapedDefaultValue,
     unescapedDescription fields to CodegenOperation, CodegenResponse,
     CodegenParameter, CodegenProperty; populate in DefaultCodegen
   - Add escapeInNormalString, escapeDollarInMultiline, escapeDollar,
     removeLineBreak lambdas to AbstractKotlinCodegen/KotlinSpringServerCodegen
     via addMustacheLambdas() using lambda. prefix
   - Update ~50 Mustache templates across kotlin-spring, kotlin-client,
     kotlin-server, kotlin-misk, kotlin-wiremock to apply lambdas at
     point-of-use instead of relying on pre-escaped values
   - Fix $ in PATH const vals, special chars in annotation strings,
     and */ corruption in string literal defaults
# Conflicts:
#	modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java
@Picazsoo Picazsoo closed this Apr 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant